pytorch

  • 通常:
    • dir,help;两个函数
    • 数据与数据集
      • dataset
        • 每一个数据以及其标签
        • 一共多少数据
      • dataloder 提供不同的格式
  • 自定义数据集
    • 继承:torch中dataset,image,os
    • init 初始化对象
    • getitem 重点::可以
    • len 取得总长度
  • tensorboard以及transfor
    • tensorboard --logdir="dataloader"
      
  • transforms
    • 图片{:height 245, :width 392}
    • 输入

      • PIL Img.open()
      • tensor Totensor
    • 作用
      • naddary cv.imread
    • 如何使用transform #重点复习
      • 关注输入和输出
      • 多看官方文档
      • 关注方法需要什么参数
        • args
      • 不知道输出什么类型
        • print
        • print(type)
        • debug 重点中重点
  • torchvision 常用的 注意:其中有常用的数据集
    • train_set=torchvision.datasets.CIFAR10(root="./dataset",train=True,transform=dataset_transform,download=True)
      
    • 常用方法:transform.compose
      • dataset_transform=torchvision.transforms.Compose([torchvision.transforms.ToTensor()])
        
  • dataloader
    • test_loader = DataLoader(dataset=test_data,batch_size=4,shuffle=True,num_workers=0,drop_last=False)#drop_last是否删掉最后一栏
      
  • 常用神经网络工具:torch.nn
    • 骨架 containers
      • module 所有要进行的修改都要继承这个类
      • 最终要两个:
        • init 继承
        • forward函数
    • convert 2d
      • 卷积操作实质
        • 控制横向或者纵向走,输入一个turple
        • 卷积核 #重点复习
          • 卷积

          • import torch.nn.functional as F
            input=torch.reshape(input,(1,1,5,5))
            kernel=torch.reshape(kernel,(1,1,3,3))
            
            output=F.conv2d(input,kernel,stride=1)
            
        • 卷积padding=1
          • 卷积
      • 神经网络:卷积层
        • 卷积层 output=2 点乘求和
          • 输出等于2
          • self.conv1=Conv2d(in_channels=3,out_channels=6,kernel_size=3,stride=1,padding=0)
            
      • 神经网络:最大池化的使用 最大值函数
        • 作用:保持最大特征
        • 最大池化
          id:: 6475b965-b338-4a06-951b-0cd8ed9cf70c
        • maxpool2d stride默认kernel
      • 神经网络:非线性激活
        • padding曾:进行填充
        • 一个参数
      • 神经网络:线性层以及其它层介绍
        • 正则化层(用得少)
        • recurrent层常用语文字识别
        • transformers层
        • 线性层 linear
        • dropout layer
      • 神经网络:搭建小实战
        • sequence真的好用
        • CIFAR10model
          • CIFAR10MODEL
          • 第一步:计算padding
            • 计算padding
      • 损失函数和反向传播 #重点复习
        • 重点,处理分类问题 CROSSENTROPYLOSS
        • 损失函数的两个作用
          • 1.为实际输出和目标之间的差距
          • 2.为我们更新输出提供一定的依据 grad
            • 如何使用?优化器
            • 利用loss
            • optimizer # TORCH.OPTIM
              • 三步走:
                • 调用优化器
                • 梯度清零+反向传播
                • step,模型调优
              • optimizer = optim.SGD(model.parameters(), lr=0.01, momentum=0.9)
                
        • 梯度下降法:
          • 达到最优解
    • 模型的修改
      • 可以print看内部结构
      • 1.add
      • 2.类似于链表操作
    • 模型的保存
      • 保存全部法
      • 保存参数法
      • torch.save(vgg16.state_dict(),"vgg16_method2.pth")
        dict1=torch.load("vgg16_method2.pth")
        vgg16.load_state_dict(dict1)
        
    • 模型的加载
      • 同上
    • 完整的模型训练套路 GPU训练 以CIFAAR10做一个分类问题(10分类问题)

    • 完整的模型验证思路
    • 再看一下github
  • 建立完整模型
    • 常用的函数:nn.loss,优化器,
  • gpu加速
  • 模型测试